package Q17_26_Sparse_Similarity; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entry; public class Tester { public static ArrayList<Integer> removeDups(int[] array) { HashSet<Integer> set = new HashSet<Integer>(); for (int a : array) { set.add(a); } ArrayList<Integer> list = new ArrayList<Integer>(); list.addAll(set); return list; } public static boolean isEqual(HashMap<DocPair, Double> one, HashMap<DocPair, Double> two) { if (one.size() != two.size()) { return false; } for (Entry<DocPair, Double> a : one.entrySet()) { if (!two.containsKey(a.getKey())) { return false; } double sim1 = a.getValue(); double sim2 = two.get(a.getKey()); if (sim1 != sim2) { return false; } } return true; } public static void printSim(HashMap<DocPair, Double> similarities) { for (Entry<DocPair, Double> result : similarities.entrySet()) { DocPair pair = result.getKey(); Double sim = result.getValue(); System.out.println(pair.doc1 + ", " + pair.doc2 + " : " + sim); } } public static void addTo(HashMap<Integer, Document> documents, int id, int[] array) { ArrayList<Integer> w = removeDups(array); Document doc = new Document(id, w); documents.put(id, doc); } public static void main(String[] args) { /*int numDocuments = 5; int docSize = 5; HashMap<Integer, Document> documents = new HashMap<Integer, Document>(); for (int i = 0; i < numDocuments; i++) { int[] words = AssortedMethods.randomArray(docSize, 0, 10); ArrayList<Integer> w = removeDups(words); System.out.println(i + ": " + w.toString()); Document doc = new Document(i, w); documents.put(i, doc); }*/ HashMap<Integer, Document> documents = new HashMap<Integer, Document>(); int[] array1 = {14, 15, 100, 9, 3}; addTo(documents, 13, array1); int[] array2 = {32, 1, 9, 3, 5}; addTo(documents, 16, array2); int[] array3 = {15, 29, 2, 6, 8, 7}; addTo(documents, 19, array3); int[] array4 = {7, 10}; addTo(documents, 24, array4); HashMap<DocPair, Double> simA = QuestionA.computeSimilarities(documents); HashMap<DocPair, Double> simB = QuestionB.computeSimilarities(documents); HashMap<DocPair, Double> simC = QuestionC.computeSimilarities(documents); System.out.println("----------"); printSim(simA); System.out.println("----------"); printSim(simB); System.out.println("----------"); printSim(simC); System.out.println("----------"); System.out.println(isEqual(simA, simB)); System.out.println(isEqual(simB, simC)); System.out.println(isEqual(simA, simC)); } }